package com.indusfo.spc.service.impl;

import com.indusfo.spc.exception.GlobalException;
import com.indusfo.spc.mapper.OfflineListMapper;
import com.indusfo.spc.mapper.OfflineMapper;
import com.indusfo.spc.pojo.Offline;
import com.indusfo.spc.pojo.OfflineList;
import com.indusfo.spc.service.OfflineListService;
import com.indusfo.spc.vo.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class OfflineListServiceImpl implements OfflineListService {

    private  static  final Logger logger = LoggerFactory.getLogger(BldcServiceImpl.class);

    @Autowired
    private OfflineListMapper offlineListMapper;

    @Autowired
    private OfflineMapper offlineMapper;


    /***
     * 维修子工序查询（分页）
     *
     * @return com.indusfo.spc.vo.JSONObject
     */
    @Override
    public JSONObject selectAll(OfflineList offlineList) {
        List<OfflineList> listOfflineList = null;
        try {
            Integer pagesize = offlineList.getPagesize();
            Integer pageindex = offlineList.getPageindex();
            if(pagesize != null && pageindex != null) {
                offlineList.setIncept(pagesize*(pageindex - 1));
            }
            Integer offlineId = offlineList.getOfflineId();
            if(offlineId==null){
                List<Offline> offlines = offlineMapper.selectAll(null);
                offlineList.setOfflineId(offlines.get(0).getOfflineId());
            }
            //查询全部
            listOfflineList = offlineListMapper.selectAll(offlineList);

            if (listOfflineList.isEmpty()) {
                return JSONObject.oK("查询不到相关数据", listOfflineList, 0);
            }
            //查询分页总记录数
            int count = offlineListMapper.countOfflineList(offlineList); //返回查询到的总记录数
            return JSONObject.oK("查询成功", listOfflineList, count);
        } catch (GlobalException e) {
            logger.error(e.getMessage(), e);
            return JSONObject.build(403, e.getMessage());
        }
    }



//    /**
//     * 维修子工序更新
//     *
//     * @param offlineList
//     * @return  JSONObject
//     */
//    @Override
//    public JSONObject updateOfflineList(OfflineList offlineList) {
//        String remark = offlineList.getRemark();
//        if(remark == null) {
//            remark = "";
//        }
//        try {
//            if(offlineList.getOfflineDetailId() == null) {
//                throw new ParamsErrorException("请选择要更新的工序ID");
//            }
//            checkParam(offlineList, remark);
//            // 调用存储过程
//            int row = offlineListMapper.updateByPrimaryKeySelective(offlineList);
//            if(row == 0) {
//                throw new ModifyFailedException("数据更新失败！");
//            }
//            return JSONObject.oK("更新成功！");
//        } catch (GlobalException e) {  //这里只捕获自定义异常
//            logger.error(e.getMessage(), e);
//            return JSONObject.build(403, e.getMessage());
//        }
//    }
//
//    /***
//     * 维修子工序新增
//     *
//     * @param offlineList
//     * @return com.indusfo.spc.vo.JSONObject
//     */
//    @Override
//    public JSONObject insertOfflineList(OfflineList offlineList) {
//        offlineList.setDataState(1);
//        String remark = offlineList.getRemark();
//        if(remark == null) {
//            remark = "";
//        }
//        try {
//            if(offlineList.getOfflineDetailId() != null) {
//                throw new ParamsErrorException("新增维修子工序时，不能填写id");
//            }
//            checkParam(offlineList, remark);
//            int	row = offlineListMapper.insertOfflineList(offlineList);
//            if(row == 0) {
//                throw new ModifyFailedException("数据新增失败！");
//            }
//            return JSONObject.oK("新增成功！");
//        } catch (GlobalException e) {  //这里只捕获自定义异常
//            logger.error(e.getMessage(), e);
//            return JSONObject.build(403, e.getMessage());
//        }
//    }
//
//    /**
//     * 删除   维修子工序
//     *
//     * @param offlineListIds
//     * @param dataState
//     * @return com.indusfo.spc.vo.JSONObject
//     */
//    @Override
//    public JSONObject deleteBldc(Long[] offlineListIds, Integer dataState) {
//        dataState=2;
//        try {
//            if (offlineListIds == null) {
//                throw new ParamsErrorException("维修子工序id不能为空");
//            }
//            // 执行存储过程
//            int row = offlineListMapper.delteOfflineList(offlineListIds,dataState);
//            String msg = "";
//            if (row == 0) {
//                new ModifyFailedException("删除失败");
//            } else {
//                msg = "删除成功";
//            }
//            return JSONObject.oK(msg);
//        } catch (GlobalException e) {
//            logger.error(e.getMessage(), e);
//            return JSONObject.build(403, e.getMessage());
//        }
//    }
//
//    /**
//     * 参数校验
//     *
//     * @param offlineList
//     * @param vcRemark
//     */
//    private void checkParam(OfflineList offlineList, String vcRemark) {
//        if (StringUtils.isEmpty(offlineList.getAutoid())) {
//            throw new ParamsErrorException("请填写维修子工序名称");
//        }
//        if (offlineList.getAutoid().getBytes().length > 50) {
//            throw new ParamsErrorException("维修子工序名称超过规定长度");
//        }
//        if (vcRemark.getBytes().length > 100) {
//            throw new ParamsErrorException("说明字数超过规定长度");
//        }
//        // 名称不能重复
//        Integer depCounts = offlineListMapper.selectOfflineList(offlineList);
//        if (depCounts !=0) {
//            throw new ParamsErrorException("该维修子工序已存在");
//        }
//    }
}
